1 Von-Neumann-Rechner
Aufgabe: 1946 wurde das von-Neumann-Rechnermodell vorgestellt, welches die Rechnerarchitektur bis heute maßgeblich beeinflusst. Arbeiten Sie grundlegende Organisationsprinzipien und Besonderheiten dieses Modells heraus. auszuarbeiten von Tim Gubner Zur Person * John von Neumann wurde am 28. Dezember 1903 in Budapest geboren. *Er war Mathematiker, Physiker und Chemie-Ingenieur deutsch-ungarischer Herkunft. *Das Prinzip, des nach ihm benannten Von-Neumann-Rechners, beschrieb er 1945 in seinem zunächst unveröffentlichten Papier "First Draft of a Report on the EDVAC". *Er verstarb am 8. Februar 1957 in Washington, DC. http://www.gohelmut.de/informatik/digitech/bilder/john.JPG Unterteilung der Architektur frame|250px|Hauptbestandteile der von-Neumann-Architektur * Ein- und Ausgabewerk * Speicher * Rechenwerk * Steuerwerk Ein- und Ausgabewerk Das Ein- und Ausgabewerk verbindet den eigentlichen von-Neumann-Rechner mit der "Außenwelt". Zur "Außenwelt" zählen nicht nur Eingabegeräte, wie z.B. die Tastatur, sondern auch nicht in der von-Neumann-Architektur vorgesehene Erweiterungen des Rechners, wie z.B. PCI-Steckkarten. Speicher Der Speicher ist grundlegend in Speicherzellen mit festgelegter Größe unterteilt. Der Zugriff auf diese erfolgt über ihre Adresse, welche die fortlaufende Nummer einer Speicherzelle darstellt. thumb|150px|Darstellung von Speicherblöcken mit ihrer Adresse Rechenwerk Das Rechenwerk, auch ALU (englisch arithmetic logic unit) genannt, basiert auf dem Dualsystem, welches eine schnelle und einfache Ausführung von Befehlen gewährleistet. Die Zahlen in der ALU basieren auf der Fixed-Point-Architektur. Der Zahlenbereich bewegt sich von -1 bis +1. Bemerkenswerk ist, dass mathematische Grundoperationen (Addition, Subtraktion, Multiplikation, Division) fest in der Hardware verankert sind. Steuerwerk Zu den Aufgaben des Steuerwerks zählen u.a. das Einlesen und Ausführen der im Speicher abgelegten Programmdaten, das Verschieben von Daten in den Speicherzellen, die Steuerung des Rechenwerks. Von-Neumann-Prinzipien 1. Ein elektronisch arbeitender Rechner besteht stets aus: * dem Rechenwerk (ALU - Arithmetic Logic Unit) führt Rechenoperationen und logische Verknüpfungen durch * dem Steuerwerk (Control Unit) interpretiert die Anweisungen eines Programms und steuert die Befehlsabfolge * dem Speicherwerk (Memory) speichert sowohl Programme als auch Daten, welche für das Rechenwerk zugänglich sind * dem Eingabe-/Ausgabewerk (I/O Unit) steuert die Ein- und Ausgabe von Daten, zum Anwender (Tastatur, Bildschirm) oder zu anderen Systemen (Schnittstellen) * dem Verbindungssystem (BUS - Binary Unit System) verbindet die Komponenten des Rechners untereinander 2. Ein Rechner ist universell einsetzbar und löst eine Vielzahl von Problemen. Dazu ist dem Gerät von außen ein Programm in den Speicher einzugeben. 3. Im Speicher liegen Programme, Daten und Ergebnisse. 4. Der Speicher besteht aus gleichgroßen, fortlaufend numerierten Zellen. Über die Nummer (Adresse) läßt sich die Speicherzelle lesen oder schreiben. 5. Ein Programm ist eine Folge von Anweisungen, die entsprechend ihrer Abarbeitungsfolge hintereinander im Speicher steht. Sprungbefehle erlauben Abweichungen von der sequentiellen Abarbeitung der Befehle. 6. Es gibt zumindestens * arithmetische Befehle für Addition, Multiplikation, Konstanten laden * logische Befehle für Vergleiche, sowie logisches not, and, or * Transportbefehle für Bewegungen von Daten zwischen Speicherwerk und Rechenwerk sowie zur Ein- und Ausgabe * bedingte Sprünge für die Implementierung von Wiederholungen und Bedingungen * sonstige Befehle für etwa Bitschieben, Unterbrechen, Warten, ... 7. Alle Daten werden binär codiert. Dem Inhalt einer Speicherzelle kann man nicht ansehen, ob es sich um einen Befehl, ein Datum oder eine Adresse handelt. Befehlsausführung und Befehlssatz Sequentielle Befehlsausführung Unter sequentieller Befehlsauführung versteht man, dass die Befehle, welche hintereinander im Speicher abgelegt sind, nacheinander ausgeführt werden. Der jeweils nächste Befehl wird, vom Steuerwerk aus, durch Erhöhen der Befehlsadresse um 1 erreicht. Durch einen Sprungbefehl kann diese Reihenfolge unterbrochen werden. thumb|250px|sequentielle Befehlsausführung Befehlssatz Da der von-Neumann-Rechner das Binärsystem nutzt, werden alle Befehle, Adresse etc. binär kodiert. Für die Dekodierung der Befehle sorgen geeignete Schaltwerke. Zu jedem Zeitpunkt wird von der CPU genau ein Befehl ausgeführt. Die Steuerung der Bearbeitung der Befehle übernimmt das Steuerwerk. Innerhalb eines Befehls kann höchstens ein Datenwert bearbeitet werden, bezeichnet wird dies auch als Single Instruction Single Data (SISD). Es gibt zumindest folgende Befehle: * arithmetische Befehle (z.B. Addition, Subtraktion, Multiplikation) * logische Befehle (z.B. Vergleiche und logische Verknüpfungen: UND, ODER, NICHT ...) * Transportbefehle (z.B. Transport von Daten vom Speicher zum Rechenwerk) * bedingte Sprünge (Vergleiche, die mit einem Sprungbefehl verknüpft sind: WENN ..., DANN SPRINGE ZU xyz) * sonstige Befehle (z.B. Warten, Unterbrechen) Besonderheiten * Realisierung aller Komponenten einer Turingmaschine * Struktur des Rechners unabhängig vom zu bearbeitenden Problem → universeller Rechner * Programme, Daten, Zwischen- und Endergebnisse im selben Speicher abgelegt * Unterteilung des Speichers in gleichgroße Zellen * Verwendung des Dualsystems * Sequentielle Abarbeitung der Befehle * Programmunterbrechungen durch Sprünge Nachteile * Speicherzellen können als Code oder als Daten interpretiert werden, da diese ohne Unterscheidungsmöglichkeit im selben Speicher abgelegt sind → Anfälligkeit gegen unerwünschte Veränderungen im Speicher, da Befehle, wie Daten, gleichermaßen bearbeitet werden können (z.B. Puffer-Überläufe). * Als weiterer Nachteil erwies sich der gemeinsame Bus. Im "Altertum" der Rechnerzeit stellte die CPU die limitierende Einheit im Rechner dar und die Geschwindigkeit der Datenübertragung war weitestgehend zu vernachlässigen. Durch den rasanten technischen Fortschritt in den folgenden Jahren und Jahrzehnten stiegen die Taktraten der CPUs (im Gegensatz zu denen der RAM-Bausteine und Bussysteme). Aufgrund der langsamen Übertragungsraten der Bussysteme beanspruchte die Datenübertragung mehr Zeit als die eigentliche Datenverarbeitung in der CPU. Gelöst wurde diese Probleme mit der Havard-Architektur, welche eine strikte Trennung zwischen Code und Daten und mehrere Bus-Systeme zur Übertragung der Daten vorsieht. Welche Prinzipien gibt es laut von-Neumann für den Rechner? * Elektronisch arbeitender Rechner besteht stets aus Eingabe-/Ausgabewerk, Rechenwerk, Steuerwerk, Speicherwerk(, Verbindungssystem) * Rechner ist universell einsetzbar und löst eine Vielzahl von Problemen * Im Speicher liegen Programme, Daten und Ergebnisse * Speicher besteht aus gleichgroßen, fortlaufend numerierten Zellen * Programm ist eine Folge von Anweisungen, die entsprechend ihrer Abarbeitungsfolge hintereinander im Speicher steht * Es gibt zumindestens arithmetische Befehle, logische Befehle, Transportbefehle, bedingte Sprünge, sonstige Befehle * Alle Daten werden binär codiert Welche Funktion hat das Steuerwerk im von-Neumann-Rechner? Zu den Aufgaben des Steuerwerks zählen u.a. das Einlesen und Ausführen der im Speicher abgelegten Programmdaten, das Verschieben von Daten in den Speicherzellen, die Steuerung des Rechenwerks. Quellen * http://de.wikipedia.org/wiki/Von-Neumann-Architektur * http://de.wikipedia.org/wiki/John_von_Neumann * http://tams-www.informatik.uni-hamburg.de/applets/baukasten/DA/VNR_Einleitung.html